查看原文
其他

TypeScript 5.5 正式发布

CUGGZ 前端充电宝
2024-08-31

6 月 20 日,TypeScript 5.5 正式发布,该版本带来的新特性包括:

  • 推断类型谓词:TypeScript 5.5 现在可以推断出类型谓词,这意味着编译器能够理解过滤数组时的类型排除逻辑。例如,filter(bird => bird !== undefined) 会将 birds 推断为 Bird[] 而不是 (Bird | undefined)[]

  • 常量索引访问的控制流细化:当对象和键都是常量时,TypeScript 现在可以细化 obj[key] 的表达式类型。例如,在 typeof obj[key] === "string" 检查之后,obj[key] 可以被细化为 string 类型。

  • JSDoc @import 标签:引入了新的 JSDoc 标签 @import,允许开发者在类型检查时导入类型,而不需要在运行时导入它们。这简化了类型导入的语法。

  • 正则表达式语法检查:TypeScript 5.5 开始对正则表达式进行基本的语法检查,能够捕获常见的正则表达式错误,例如错误的括号和不存在的反向引用。

  • 支持 ECMAScript Set 新方法:声明了 ECMAScript Set 类型的新提议方法,如 union, intersection, difference, symmetricDifference, isSubsetOf, isSupersetOf, 和 isDisjointFrom

  • 隔离声明:引入了 --isolatedDeclarations 选项,允许开发者明确写出他们导出的类型,工具可以不查看模块实现就能生成声明文件。

  • 配置文件中的 ${configDir} 模板变量:在 tsconfig.jsonjsconfig.json 文件的某些路径字段中使用 ${configDir} 变量,它会被替换为给定编译中配置文件的包含目录。

  • 为声明文件生成 package.json 依赖:TypeScript 5.5 在生成声明文件时会更宽松地处理 package.json 中明确声明的依赖。

  • 编辑器和监视模式的可靠性改进:改进了 --watch 模式和 TypeScript 编辑器集成的可靠性,减少了 TSServer/编辑器重启的次数。

  • 性能和体积优化:进行了多项性能优化,包括语言服务和公共 API 的单态化对象,控制流图的优化,以及 transpileModuletranspileDeclaration API 的改进。将 TypeScript 打包大小从 5.5 MB 减少到 3.7 MB!

  • ECMAScript 模块中更容易地使用 API:修复了与 ECMAScript 模块一起使用时 TypeScript npm 包的命名导入问题。

  • transpileDeclaration API:引入了一个新的 API,用于根据输入源文本生成单个声明文件。

编辑、整理:前端充电宝

更新详情:https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/

往期推荐

最受欢迎的前端技术揭晓,你用过吗?

3 人!大厂程序员相继猝死,这个开源项目一定要学!

10个超好看的 404 页面(附源码)

Electron 31 正式发布

遭了!JavaScript 代码被投毒了

15个超好看的登录页面(附源码)

前端性能指标,一网打尽!

VS Code 常用快捷键大全

继续滑动看下一个
前端充电宝
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存